#ifndef GAME_MANAGER_HH_
# define GAME_MANAGER_HH_

# include "player.hh"
# include <list>
# include <cassert>
# include <vector>

# include "../ai/ai_handler.hh"

class GameManager
{
public:
  GameManager ();
  ~GameManager ();

  void add_player (Player* p) { player_list_.push_back (p); }
  Player* operator() (int player_id);

  bool is_winner ();

  int winner () const { return winner_; }

  AIHandler* ai_handler () { return ai_h_; }

protected:
  std::vector<Player*> player_list_;

  int winner_;

  // ai handler
  AIHandler* ai_h_;
};

#endif /// !GAME_MANAGER_HH_
